/*--------------------------------------------------------------------------------------*\
**
** t_adventure_event_base.h
**
** Heroes IV
** Copyright 2000, The 3DO Company
**
\*--------------------------------------------------------------------------------------*/

#if !defined( ADVENTURE_EVENT_VISIBLITY_H_INCLUDED)
#define ADVENTURE_EVENT_VISIBLITY_H_INCLUDED

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include <list>

#include "adventure_events_base.h"
#include "adventure_object_global_id.h"
#include "adv_map_point.h"
#include "counted_ptr.h"
#include "direction.h"
#include "map_point.h"
#include "memory_buffer.h"

// --------------------------------------------------------------------------
// t_adventure_event_visiblity class : special class which replicates the activate_trigger
// call onto eye magi, towers, etc..
// --------------------------------------------------------------------------

class   t_adventure_object;
class   t_army;

class t_adventure_event_visiblity : public t_adventure_event_base
{
public:
	// Constructor
	t_adventure_event_visiblity();
	t_adventure_event_visiblity( t_army* army, t_adv_map_point const& point, t_direction direction, t_adventure_object* source );
	
	virtual void execute_event( t_adventure_map* map , t_saved_game_header const & header ) ;
	virtual void undo_event( t_adventure_map* map , t_saved_game_header const & header );

	virtual bool	read( std::streambuf & buffer , int version );
	virtual bool	write( std::streambuf & buffer );
	
protected:

	t_direction						m_direction;
	t_adv_map_point					m_event_point;
	t_adventure_global_id			m_global_id_source;

};

#endif // ADVENTURE_EVENT_VISIBLITY_H_INCLUDED

